#include <stdio.h>
#include <math.h>

/*【8大函数】*/

/*【1】读取pgm为矩阵 函数*/  //读图片的
void pgm_to_matrix(const char *file_path, const int n_rows, const int n_cols, double A[n_rows][n_cols]);

/*【2】矩阵拉成一条行向量 函数*/  //展开为输入
void matrix_to_vector(const int n_rows, const int n_cols, const double matrix[n_rows][n_cols], double vector[1][n_rows*n_cols]);

/*【3】向量变矩阵 函数*/  //txt的权重变矩阵
void vector_to_matrix(const int n_rows, const int n_cols, const double vector[1][n_rows*n_cols], double matrix[n_rows][n_cols]);

/*【4】读取txt为向量 函数*/  //读权重与偏置的
void read_txt_data(const char *txt_path, const int n, double array[1][n]);

/*【5】矩阵加法 函数*/  //矩阵相加
void add_matrices(const int n_rows, const int n_cols, const double mat1[n_rows][n_cols], const double mat2[n_rows][n_cols], double result[n_rows][n_cols]);

/*【6】矩阵乘法 函数*/  //矩阵乘法
void matrix_mul(const int n_rows, const int n_cols, const int p, const double matrix1[n_rows][p], const double matrix2[p][n_cols], double matrix_product[n_rows][n_cols]);

/*【7】激活 函数*/  //激活函数
void active_function(const int SIZE, const double F[1][SIZE], double G[1][SIZE]);

/*【8】softmax 函数*/  //原始输出转为概率分布(置信度)
void soft_max(const int n_rows, const int n_cols, const double L[n_rows][n_cols], double S[n_rows][n_cols]);

int main(){

}

/*【1】读取pgm为矩阵 函数*/
void pgm_to_matrix(const char *file_path, const int n_rows, const int n_cols, double A[n_rows][n_cols]){
    
}

/*【2】矩阵拉成一条行向量 函数*/
void matrix_to_vector(const int n_rows, const int n_cols, const double matrix[n_rows][n_cols], double vector[1][n_rows*n_cols]){
    
}

/*【3】向量变矩阵 函数*/
void vector_to_matrix(const int n_rows, const int n_cols, const double vector[1][n_rows*n_cols], double matrix[n_rows][n_cols]){
    
}

/*【4】读取txt为向量 函数*/  //读权重与偏置的
void read_txt_data(const char *txt_path, const int n, double array[1][n]){

}

/*【5】矩阵加法 函数*/  //矩阵相加
void add_matrices(const int n_rows, const int n_cols, const double mat1[n_rows][n_cols], const double mat2[n_rows][n_cols], double result[n_rows][n_cols]){
    
}

/*【6】矩阵乘法 函数*/
void matrix_mul(const int n_rows, const int n_cols, const int p, const double matrix1[n_rows][p], const double matrix2[p][n_cols], double matrix_product[n_rows][n_cols]){
    
}

/*【7】激活 函数*/  //这是非常经典的ReLU激活函数
void active_function(const int SIZE, const double F[1][SIZE], double G[1][SIZE]){
    
}

/*【8】softmax 函数*/  //原始输出转为概率分布(置信度)
void soft_max(const int n_rows, const int n_cols, const double L[n_rows][n_cols], double S[n_rows][n_cols]){
    
}